from django.db import models


class Area(models.Model):
    """
    行政区划
    """
    name = models.CharField(max_length=20, verbose_name="名称")
    """
    1.自关联外键必须指向自己,所以要写成ForeignKey("self"),必须记住.
    2.必填项:null=True,指父级可以为空.
                eg.如果parent代表省,省没有父级,所以可以为空.
            blank=True,指站点中的父级可以为空.
    3.可选项:on_delete=models.SET_NULL,删除守护.
                eg.当parent为市级时,删除它,它的子级不会被删除.
            verbose_name="",站点中这个字段的名称.
    4.related_name="subs",用subs来代替关联查询area_set.
            这儿写什么,序列化器的验证字段里也写什么.
    """
    parent = models.ForeignKey("self", on_delete=models.SET_NULL, related_name="subs", null=True, blank=True,
                               verbose_name="上级行政区划")

    class Meta:
        db_table = "tb_areas"
        verbose_name = "行政区划"
        verbose_name_plural = "行政区划"

    def __str__(self):
        return self.name


